package com.xqboss.apps.enums.nft;

/**
 * @author Administrator
 */
public class EnumNftPublishLog {


    public enum StockType {//出库方式 1 首发 2 空投 3 熔炼 4 合成 5 开箱
        sf((byte) 1, "首发", GainType.sf),//首发
        kt((byte) 2, "空投", GainType.kt),//空投
        rl((byte) 3, "熔炼", GainType.rl),//熔炼
        hc((byte) 4, "合成", GainType.hc),//合成
        kx((byte) 5, "开箱", GainType.kx),//开箱
        ;

        StockType(byte key, String value, GainType gainType) {
            this.key = key;
            this.value = value;
            this.gainType = gainType;
        }

        private byte key;//id
        private String value;//key
        private GainType gainType;


        public byte getKey() {
            return this.key;
        }

        public String getValue() {
            return this.value;
        }

        public GainType getGainType() {
            return gainType;
        }
    }

    public enum GainType {//获得方式 1 首发 2 空投 3 熔炼 4 合成 5 开箱 6 转卖 7 转增
        sf((byte) 1, "首发"),//首发
        kt((byte) 2, "空投"),//空投
        rl((byte) 3, "熔炼"),//熔炼
        hc((byte) 4, "合成"),//合成
        kx((byte) 5, "开箱"),//开箱
        zm((byte) 6, "转卖"),//转卖
        zz((byte) 7, "转增"),//转增
        ;

        GainType(byte key, String value) {
            this.key = key;
            this.value = value;
        }

        private byte key;//id
        private String value;//key


        public byte getKey() {
            return this.key;
        }

        public String getValue() {
            return this.value;
        }

    }

    public enum NftStat {//当前状态
        wck((byte) 0, "未出库"),//未出库
        ysc((byte) 1, "已收藏"),//已收藏
        smz((byte) 2, "售卖中"),//售卖中
        jyz((byte) 3, "交易中"),//交易中
        yhc((byte) 4, "已合成"),//已合成
        yxh((byte) 5, "已销毁"),//已销毁
        ;

        NftStat(byte key, String value) {
            this.key = key;
            this.value = value;
        }

        private byte key;//id
        private String value;//key


        public byte getKey() {
            return this.key;
        }

        public String getValue() {
            return this.value;
        }

    }

    public enum ChangeReason {//变更原因
        sell((byte) 1, "售卖", NftStat.smz),//已收藏->售卖中
        cancel_sell((byte) 2, "取消售卖", NftStat.ysc),//售卖中->已收藏
        take_order((byte) 3, "集市下单", NftStat.jyz),//集市下单 售卖中->交易中
        cancel_order((byte) 4, "取消订单", NftStat.smz),//交易中->售卖中
        hc((byte) 5, "合成", NftStat.yhc),//合成 已收藏->已合成
        xh((byte) 6, "销毁", NftStat.yxh),//销毁 已收藏->已销毁
        ;

        ChangeReason(byte key, String value, NftStat nftStat) {
            this.key = key;
            this.value = value;
            this.nftStat = nftStat;
        }

        private byte key;//id
        private String value;//key
        private NftStat nftStat;


        public byte getKey() {
            return this.key;
        }

        public String getValue() {
            return this.value;
        }

        public NftStat getNftStat() {
            return nftStat;
        }
    }

    public enum GainTypeChangeReason {//变更持有人原因
        zm((byte) 1, "转卖"),//转卖
        zz((byte) 2, "转增"),//转增
        ;

        GainTypeChangeReason(byte key, String value) {
            this.key = key;
            this.value = value;
        }

        private byte key;//id
        private String value;//key


        public byte getKey() {
            return this.key;
        }

        public String getValue() {
            return this.value;
        }

    }


}
